package com.ruicar.afs.cloud.manage.outer.api.insurance.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.modules.contract.enums.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @Author chuke
 * @create 2020/7/30 20:24
 */
@Data
public class ManageCustInfoChangeDto {
    /**当前页码*/
    @ApiModelProperty("当前页码")
    private Integer pageNumber;
    /**每页大小*/
    @ApiModelProperty("每页大小")
    private Integer pageSize;
    /**审批结果*/
    @ApiModelProperty("审批结果")
    private String approvalOperating;
    /**业务类型*/
    @ApiModelProperty("业务类型")
    private String contractBusiness;
    /**审批意见*/
    @ApiModelProperty("审批意见")
    private String approvalOpinion;
    /**申请时间起*/
    @ApiModelProperty("申请时间起")
    private String startCreateDate;
    /**申请时间止*/
    @ApiModelProperty("申请时间止")
    private String endCreateDate;
    /**结束时间起*/
    @ApiModelProperty("结束时间起")
    private String startFinishDate;
    /**结束时间止*/
    @ApiModelProperty("结束时间止")
    private String endFinishDate;
    /** 派单时间起*/
    @ApiModelProperty("派单时间起")
    private String startDispatchDate;
    /*** 派单时间止*/
    @ApiModelProperty("派单时间止")
    private String endDispatchDate;
    /** 处理人员*/
    @ApiModelProperty("处理人员")
    private String processPerson;
    /** 渠道id */
    @ApiModelProperty("渠道id")
    @JsonSerialize(using = ToStringSerializer.class)
    @JSONField(serializeUsing = com.alibaba.fastjson.serializer.ToStringSerializer.class)
    private Long channelId;
    /** 合同号码 */
    @ApiModelProperty("合同号码")
    private String contractNo;
    /** 案件编号 */
    @ApiModelProperty("案件编号")
    private String caseNo;
    /** 申请编号 */
    @ApiModelProperty("申请编号")
    private String applyNo;
    /** 数据来源 枚举值：CMS、多品系统 */
    @ApiModelProperty("数据来源 枚举值：CMS、多品系统")
    private DataSourceEnum dataSource;
    /** 变更主体 枚举值: 主借人、共借人、但保人  */
    @ApiModelProperty("变更主体 枚举值: 主借人、共借人、但保人")
    private PersonRoleTypeEnum changeSubject;
    /** 变更类型 枚举值：仅更新身份证件有效期 仅姓名（曾用名） 姓名及身份证件号码 其他信息 */
    @ApiModelProperty("变更类型 枚举值：仅更新身份证件有效期 仅姓名（曾用名） 姓名及身份证件号码 其他信息")
    private CustInfoChangeTypeEnum changeType;
    /** 原姓名 */
    @ApiModelProperty("原姓名")
    private String oldName;
    /** 新姓名 */
    @ApiModelProperty("新姓名")
    private String newName;
    /** 原证件类型 */
    @ApiModelProperty("原证件类型")
    private String oldCertType;
    /** 新证件类型 */
    @ApiModelProperty("新证件类型")
    private String newCertType;
    /** 原证件号码 */
    @ApiModelProperty("原证件号码")
    private String oldCertNo;
    /** 新证件号码 */
    @ApiModelProperty("新证件号码")
    private String newCertNo;
    /** 原证件有效期起 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("原证件有效期起")
    private Date oldCertStartDate;
    /** 新证件有效期起 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("新证件有效期起")
    private Date newCertStartDate;
    /** 原证件有效期止 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("原证件有效期止")
    private Date oldCertEndDate;
    /** 新证件有效期止 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("新证件有效期止")
    private Date newCertEndDate;
    /** 备注 */
    @ApiModelProperty("备注")
    private String remarks;
    /** 申请时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date applyDate;
    /** 结束时间 案件审批完成时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("结束时间 案件审批完成时间")
    private Date endDate;
    /** 处理状态 枚举值 */
    @ApiModelProperty("处理状态 枚举值")
    private String processStatus;
    /** 客户姓名 */
    @ApiModelProperty("客户姓名")
    private String custName;
    /** 合同状态 */
    @ApiModelProperty("合同状态")
    private ContractStatusEnum contractStatus;
    /** 业务来源 */
    @ApiModelProperty("业务来源")
    private BusinessSourceEnum businessSource;
}
